www.gusucode.com > matlab编程NSCT分解 图像融合 各个融合指标评价体系 分解源码程序 > matlab编程NSCT分解 图像融合 各个融合指标评价体系 分解源码程序/NSCT/imhist_my.m

    function varargout = imhist_my(image)
%    IMHIST_MY    计算图像矩阵image直方图
%    输出:无            绘制出直方图
%         [histv,grayv] histv为每个grayv的个数,grayv为灰度值
%    作者:lskyp    时间:2009.08.17
if isrgb(image)
    error('图像为RGB图像,不能用该函数处理');
end
if isa(image,'uint8')
    histv = zeros(1,256);
    grayv = 0:255;
elseif isa(image,'uint16')
    histv = zeros(1,65536);
    grayv = 0:65535;
end
for p = 1:size(image,1)
    for q = 1:size(image,2)
        histv(image(p,q) + 1) = histv(image(p,q) + 1) + 1;
    end
end
if nargout==0
    stem(grayv,histv,'Marker','none');
    title('直方图');
    xlim([0 max(grayv)]);
    xlabel('灰度值');
    ylabel('个数');
else
    varargout = {histv,grayv};
end